home *** CD-ROM | disk | FTP | other *** search
- ;IceBreaker Assembler Source
- ;---------------------------
- ;Link this file with IceBreaker.c.
- ;CASE sensitivity ON.
-
- INCDIR "INCLUDES:"
- INCLUDE "exec/exec_lib.i"
- INCLUDE "dos/dos_lib.i"
- INCLUDE "libs/graphics_lib.i"
- INCLUDE "games/games_lib.i"
- INCLUDE "games/games.i"
- INCLUDE "games/debug.i"
- INCLUDE "games/gamesbase.i"
- INCLUDE "games/tasks.i"
-
- ;The following values are defined by us so that the C source can
- ;access them.
-
- xdef _libDebugMessage
- xdef _libErrorMessage
- xdef _libStepBack
- xdef _DebugList
- xdef _GFXBase
-
- ;The following values are defined in the C source.
-
- xref _DOSBase
- xref _GMSBase
- xref _SysBase
- xref _conhandle
-
- SECTION IceAssembler,CODE ;SECTION __MERGED,CODE
-
- CALL MACRO
- jsr _LVO\1(a6)
- ENDM
-
- TEXT MACRO ;Simple macro for nice looking source.
- IFNE '\1',''
- dc.b \1
- ENDC
- IFNE '\2',''
- dc.b \2
- ENDC
- IFNE '\3',''
- dc.b \3
- ENDC
- even
- ENDM
-
- WText MACRO ;Simple macro for nice looking source.
- dc.b \1,0
- even
- ENDM
-
- ;===================================================================================;
- ; INTERCEPT DEBUG MESSAGE
- ;===================================================================================;
- ;Function: Receives a debug message, copies it to the buffer and then sends a
- ; message to our main task, which tells it new data has appeared in the
- ; buffer. This function needs to be very very fast.
- ;
- ;Requires: d7 = Debug type in low word, flags in high word.
- ; a5 = Message string if type of Error/Formatted/Message.
- ;Returns: Nothing.
-
- _libDebugMessage:
- cmp.w #DBG_END,d7 ;d7 = If (Type < 0) or (Type > DBG_End-1)
- bcc.s .exit ;>> = No, it's safe.
- tst.w gb_BlitterUsed(a6) ;a6 = Blitter allocated?
- beq.s .debug ;>> = No, safe.
- MOVEM.L D0-D7/A0-A6,-(SP)
- move.l _GFXBase(pc),a6 ;a6 = Graphics base.
- CALL DisownBlitter ;>> = Disown the blitter.
- CALL WaitBlit
- bsr.s .debug ;>> = Now we can send the messaage.
- move.l _GFXBase(pc),a6 ;a6 = Graphics base.
- CALL OwnBlitter
- CALL WaitBlit
- MOVEM.L (SP)+,D0-D7/A0-A6
- .exit rts
-
- .debug MOVEM.L A0-A6/D0-D7,-(SP) ;SP = Save used registers.
- move.l _SysBase,a6 ;a6 = Exec Base.
- CALL Forbid ;>> = Halt all tasks for a moment.
-
- move.l d7,d6 ;d6 = Save flags.
- and.l #$0000ffff,d7 ;d7 = Get rid of special flags.
- bsr Stepper ;>> = Function stepper (print step).
- lea _DebugList(pc),a6 ;a6 = Pointer to debug list.
- mulu #DL_SIZEOF,d7 ;d7 = (Type)*DL_SIZEOF
- move.l DL_Print(a6,d7.l),a6 ;a6 = Printer for this type.
- jsr (a6) ;>> = Go to the printer.
- bsr NewLine ;>> = Write new line.
-
- and.l #STEP,d6 ;d6 = Step necessary?
- beq.s .done ;>> = Nope.
- move.l _GMSBase,a6 ;a6 = GMSBase.
- CALL FindGMSTask ;>> = Find this task.
- tst.l d0 ;d0 = Check if the node exists.
- beq.s .done ;>> = No.
- move.l d0,a0 ;a0 = Pointer to GMS task node.
- addq.w #1,GT_DebugStep(a0) ;a0 = (DebugStep)+1
-
- .done move.l _SysBase,a6 ;a6 = Exec Base.
- CALL Permit ;>> = Give back multi-tasking.
- MOVEM.L (SP)+,A0-A6/D0-D7 ;SP = Return used registers.
- rts
-
- ;===================================================================================;
- ; INTERCEPT ERROR MESSAGE
- ;===================================================================================;
- ;Function: Receives an error number and prints it out.
- ;Requires: d0.l = Error code.
- ;Returns: Nothing.
-
- _libErrorMessage:
- cmp.l #ERR_END,d0 ;d0 = If (Code < 0) or (Code > ERR_END-1).
- bcc.s .exit ;>> = Error/Unrecognised.
- tst.w gb_BlitterUsed(a6) ;Has the blitter been grabbed and not
- beq.s .message ;returned? If so we better free it before
- MOVEM.L D0-D7/A0-A6,-(SP) ;SP = Save used registers.
- move.l _GFXBase,a6 ;a6 = Graphics base.
- CALL DisownBlitter ;>> = Disown the blitter.
- bsr.s .message ;>> = Print message.
- move.l _GFXBase,a6 ;a6 = Graphics base.
- CALL OwnBlitter ;>> = Get back blitter.
- MOVEM.L (SP)+,D0-D7/A0-A6 ;SP = Return used registers.
- .exit rts
-
- .message
- MOVEM.L A0-A6/D0-D7,-(SP) ;SP = Save used registers.
- move.l _SysBase,a6 ;a6 = Exec Base.
- CALL Forbid ;>> = Halt all tasks for a moment.
- bsr Stepper ;>> = Function stepper.
- lea TXT_ErrorCode(pc),a0 ;a0 = "ErrorCode:"
- bsr WriteBold ;>> = Write it out.
- lea ErrorList(pc),a0 ;a0 = Pointer to debug list.
- add.l d0,d0 ;d0 = *2
- add.l d0,d0 ;d0 = *4
- move.l (a0,d0.l),a0 ;a0 = Text for this type.
- bsr WText ;>> = Write it out.
- bsr NewLine ;>> = Write new line.
- move.l _SysBase,a6 ;a6 = Exec Base.
- CALL Permit ;>> = Give back multi-tasking.
- MOVEM.L (SP)+,A0-A6/D0-D7 ;SP = Return used registers.
- rts
-
- ;===================================================================================;
- ; STEP BACK AN ENTRY
- ;===================================================================================;
- ;Function: Used to step back an entry after STEP has been specified.
- ;Requires: Nothing.
- ;Returns: Nothing.
-
- _libStepBack:
- MOVEM.L A0/D0,-(SP) ;SP = Save used registers.
- CALL FindGMSTask ;>> = Find this task.
- tst.l d0
- beq.s .done
- move.l d0,a0 ;a0 = Task node pointer.
- subq.w #1,GT_DebugStep(a0) ;a0 = (DebugStep)-1
- .done MOVEM.L (SP)+,A0/D0 ;SP = Return used registers.
- rts
-
- ;===================================================================================;
- ; PRINTING FUNCTIONS
- ;===================================================================================;
-
- PRINT_Error:
- lea TXT_Error(pc),a0
- bsr WriteBold
- move.l a5,a0 ;a0 = Message
- bsr WText ;>> = Write it out.
- rts
-
- PRINT_Formatted:
- lea TXT_Formatted(pc),a0
- bsr WriteBold
- move.l a5,a0 ;a0 = Message
- bsr WText ;>> = Write it out.
- rts
-
- PRINT_Message:
- lea TXT_Message(pc),a0
- bsr WriteBold
- move.l a5,a0 ;a0 = Message
- bsr WText ;>> = Write it out.
- rts
-
- ;-----------------------------------------------------------------------------------;
- ; MISCELLANEOUS FUNCTIONS
- ;-----------------------------------------------------------------------------------;
-
- PRINT_AddInputHandler:
- lea TXT_AddInputHandler(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_RemInputHandler:
- lea TXT_RemInputHandler(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_Switch:
- lea TXT_Switch(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_FindGMSTask:
- lea TXT_FindGMSTask(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_AllocAudio:
- lea TXT_AllocAudio(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_FreeAudio:
- lea TXT_FreeAudio(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_GMSOpened:
- lea TXT_GMSOpened(pc),a0
- bsr WriteWhite
- rts
-
- PRINT_GMSClosed:
- lea TXT_GMSClosed(pc),a0
- bsr WriteWhite
- rts
-
- PRINT_AddInterrupt:
- lea TXT_AddInterrupt(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_RemInterrupt:
- lea TXT_RemInterrupt(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_RemoveGPI:
- lea TXT_RemoveGPI(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_InitGPI:
- lea TXT_InitGPI(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_SmartUnpack:
- lea TXT_SmartUnpack(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_SetUserPrefs:
- move.l a0,a1
- lea TXT_SetUserPrefs(pc),a0
- bsr WriteFirst
- lea TXT_Name(pc),a0 ;a0 = "Name: "
- bsr WriteText
- cmp.l #$00,a1 ;a1 = Name given?
- beq.s .unspecified
- move.l a1,a0
- bra WriteText
- .unspecified
- lea TXT_Unspecified(pc),a0
- bra WriteText
-
- PRINT_InitCards:
- lea TXT_InitCards(pc),a0
- bra WriteFirst
-
- PRINT_FreeCards:
- lea TXT_FreeCards(pc),a0
- bra WriteFirst
-
- PRINT_GetCardInfo:
- lea TXT_GetCardInfo(pc),a0
- bra WriteFirst
-
- PRINT_SelfDestruct:
- lea TXT_SelfDestruct(pc),a0
- bra WriteFirst
-
- PRINT_Armageddon:
- lea TXT_Armageddon(pc),a0
- bra WriteFirst
-
- PRINT_FingerOfDeath:
- lea TXT_FingerOfDeath(pc),a0
- bra WriteFirst
-
- PRINT_InitDestruct:
- lea TXT_InitDestruct(pc),a0
- bra WriteFirst
-
- PRINT_Awaken:
- lea TXT_Awaken(pc),a0
- bsr WriteFirst
- lea TXT_Task(pc),a0
- bsr WriteText
- move.l a1,d0
- bra WriteHex
-
- ;-----------------------------------------------------------------------------------;
- ; SOUND FUNCTIONS
- ;-----------------------------------------------------------------------------------;
-
- PRINT_InitSound:
- move.l a0,d0
- lea TXT_InitSound(pc),a0
- bsr WriteFirst
- lea TXT_SoundAddr(pc),a0
- bsr WriteText
- bra WriteHex
-
- PRINT_FreeSound:
- move.l a0,d0
- lea TXT_FreeSound(pc),a0
- bsr WriteFirst
- lea TXT_SoundAddr(pc),a0
- bsr WriteText
- bra WriteHex
-
- ;-----------------------------------------------------------------------------------;
- ; BLITTER FUNCTIONS
- ;-----------------------------------------------------------------------------------;
-
- PRINT_AllocBlitter:
- lea TXT_AllocBlitter(pc),a0
- bra WriteFirst
-
- PRINT_FreeBlitter:
- lea TXT_FreeBlitter(pc),a0
- bra WriteFirst
-
- PRINT_InitBob:
- move.l a0,d0
- lea TXT_InitBob(pc),a0 ;a0 = "InitBob()"
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText
- bsr WriteHex
- lea TXT_BobAddr(pc),a0 ;a0 = "Bob: $"
- bsr WriteText
- move.l a1,d0 ;d0 = Bob Address.
- bra WriteHex
-
- PRINT_FreeBob:
- lea TXT_FreeBob(pc),a0 ;a0 = "FreeBob()"
- bsr WriteFirst
- lea TXT_BobAddr(pc),a0 ;a0 = "Bob: $"
- bsr WriteText
- move.l a1,d0 ;d0 = Bob Address.
- bra WriteHex
-
- PRINT_InitMap:
- lea TXT_InitMap(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_FreeMap:
- lea TXT_FreeMap(pc),a0
- bsr WriteFirst
- rts
-
- ;-----------------------------------------------------------------------------------;
- ; RESTORELIST FUNCTIONS
- ;-----------------------------------------------------------------------------------;
-
- PRINT_InitRestore:
- lea TXT_InitRestore(pc),a0
- bsr WriteFirst
- lea TXT_AmtBuffers(pc),a0 ;a0 = "AmtBuffers: "
- bsr WriteText ;>> = Write.
- bsr WriteDec ;>> = Write out amount of buffers in d0.
- lea TXT_AmtEntries(pc),a0 ;a0 = ", AmtEntries: "
- bsr WriteText ;>> = Write text.
- move.l d1,d0 ;d0 = Amount Entries.
- bra WriteDec ;>> = Write out amount of entries.
-
- PRINT_ResetRestore:
- lea TXT_ResetRestore(pc),a0
- bsr WriteFirst
- lea TXT_RestoreAddr(pc),a0 ;a0 = "Restorelist: $"
- bsr WriteText ;>> = Write.
- move.l a1,d0 ;d0 = Pointer to restorelist.
- bra WriteHex ;>> = Write.
-
- PRINT_FreeRestore:
- lea TXT_FreeRestore(pc),a0
- bsr WriteFirst
- lea TXT_RestoreAddr(pc),a0 ;a0 = "Restorelist: $"
- bsr WriteText ;>> = Write.
- bra WriteHex ;>> = Write out address in d0.
-
- ;-----------------------------------------------------------------------------------;
- ; PICTURE MANIPULATION
- ;-----------------------------------------------------------------------------------;
-
- PRINT_LoadPic:
- lea TXT_LoadPic(pc),a0
- bsr WriteFirst
- lea TXT_PictureAddr(pc),a0 ;a0 = "Picture: $"
- bsr.s WriteText ;>> = Write.
- move.l a1,d0 ;d0 = Address of picture.
- bra WriteHex ;>> = Write.
-
- PRINT_FreePic:
- lea TXT_FreePic(pc),a0
- bsr WriteFirst
- lea TXT_PictureAddr(pc),a0 ;a0 = "Picture: $"
- bsr.s WriteText ;>> = Write.
- move.l a1,d0 ;d0 = Address of picture.
- bra WriteHex ;>> = Write.
-
- PRINT_GetPicInfo:
- lea TXT_GetPicInfo(pc),a0
- bsr WriteFirst
- lea TXT_PictureAddr(pc),a0 ;a0 = "Picture: $"
- bsr.s WriteText ;>> = Write.
- move.l a1,d0 ;d0 = Address of picture.
- bra WriteHex ;>> = Write.
-
- PRINT_UnpackPic:
- lea TXT_UnpackPic(pc),a0
- bsr WriteFirst
- lea TXT_PictureAddr(pc),a0 ;a0 = "Picture: $"
- bsr.s WriteText ;>> = Write.
- move.l a1,d0 ;d0 = Address of picture.
- bra WriteHex ;>> = Write.
-
- ;-----------------------------------------------------------------------------------;
- ; SCREEN HANDLING
- ;-----------------------------------------------------------------------------------;
-
- PRINT_ShowScreen:
- move.l a0,a1 ;a1 = Save GameScreen
- lea TXT_ShowScreen(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText ;>> = Write it out.
- move.l a1,d0 ;d0 = Adddress of screen.
- bra WriteHex ;>> = Write it out.
-
- PRINT_DeleteScreen:
- move.l a0,a1 ;a1 = Save GameScreen
- lea TXT_DeleteScreen(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText ;>> = Write it out.
- move.l a1,d0 ;d0 = Adddress of screen.
- bra WriteHex ;>> = Write it out.
-
- PRINT_AddScreen:
- move.l a0,a1 ;a1 = Save GameScreen
- lea TXT_AddScreen(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText ;>> = Write it out.
- move.l a1,d0 ;d0 = Adddress of screen.
- bra WriteHex ;>> = Write it out.
-
- PRINT_HideScreen:
- move.l a0,a1
- lea TXT_HideScreen(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText ;>> = Write it out.
- move.l a1,d0 ;d0 = Adddress of screen.
- bra WriteHex ;>> = Write it out.
-
- PRINT_MoveToBack:
- move.l a0,a1
- lea TXT_MoveToBack(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText
- move.l a1,d0
- bra WriteHex
-
- PRINT_MoveToFront:
- move.l a0,a1
- lea TXT_MoveToFront(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText
- move.l a1,d0
- bra WriteHex
-
- PRINT_TakeDisplay:
- move.l a0,a1
- lea TXT_TakeDisplay(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText
- move.l a1,d0
- bra WriteHex
-
- PRINT_ReturnDisplay:
- move.l a0,a1
- lea TXT_ReturnDisplay(pc),a0
- bra WriteFirst
-
- PRINT_BlankOn:
- lea TXT_BlankOn(pc),a0
- bra WriteFirst
-
- PRINT_BlankOff:
- lea TXT_BlankOff(pc),a0
- bra WriteFirst
-
- ;-----------------------------------------------------------------------------------;
- ; RASTERLISTS
- ;-----------------------------------------------------------------------------------;
-
- PRINT_InitRasterlist:
- move.l a0,a1 ;a1 = Save GameScreen.
- lea TXT_InitRasterlist(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText ;>> = Write.
- move.l a1,d0 ;d0 = Address of screen.
- bsr WriteHex ;>> = Write.
- lea TXT_RasterAddr(pc),a0 ;a0 = "Rasterlist: $"
- bsr WriteText ;>> = Write.
- move.l GS_Rasterlist(a1),d0 ;d0 = Address of rasterlist.
- bra WriteHex ;>> = Write.
-
- PRINT_HideRasterlist:
- move.l a0,a1 ;a1 = Save GameScreen.
- lea TXT_HideRasterlist(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText ;>> = Write.
- move.l a1,d0 ;d0 = Address of screen.
- bsr WriteHex ;>> = Write.
- lea TXT_RasterAddr(pc),a0 ;a0 = "Rasterlist: $"
- bsr WriteText ;>> = Write.
- move.l GS_Rasterlist(a1),d0 ;d0 = Address of rasterlist.
- bra WriteHex ;>> = Write.
-
- PRINT_ShowRasterlist:
- move.l a0,a1 ;a1 = Save GameScreen.
- lea TXT_ShowRasterlist(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText ;>> = Write.
- move.l a1,d0 ;d0 = Address of screen.
- bsr WriteHex ;>> = Write.
- lea TXT_RasterAddr(pc),a0 ;a0 = "Rasterlist: $"
- bsr WriteText ;>> = Write.
- move.l GS_Rasterlist(a1),d0 ;d0 = Address of rasterlist.
- bra WriteHex ;>> = Write.
-
- PRINT_RemoveRasterlist:
- move.l a0,a1 ;a1 = Save GameScreen.
- lea TXT_RemoveRasterlist(pc),a0
- bsr WriteFirst
- lea TXT_ScreenAddr(pc),a0 ;a0 = "GameScreen: $"
- bsr WriteText ;>> = Write.
- move.l a1,d0 ;d0 = Address of screen.
- bsr WriteHex ;>> = Write.
- lea TXT_RasterAddr(pc),a0 ;a0 = "Rasterlist: $"
- bsr WriteText ;>> = Write.
- move.l GS_Rasterlist(a1),d0 ;d0 = Address of rasterlist.
- bra WriteHex ;>> = Write.
-
- ;-----------------------------------------------------------------------------------;
- ; OBJECT FUNCTIONS
- ;-----------------------------------------------------------------------------------;
-
- PRINT_GetObject:
- lea TXT_GetObject(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_GetObjectList:
- lea TXT_GetObjectList(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_LoadObjectFile:
- lea TXT_LoadObjectFile(pc),a0
- bsr WriteFirst
- rts
-
- PRINT_FreeObjectFile:
- lea TXT_FreeObjectFile(pc),a0
- bsr WriteFirst
- rts
-
- ;-----------------------------------------------------------------------------------;
- ; MEMORY FUNCTIONS
- ;-----------------------------------------------------------------------------------;
-
- PRINT_AllocBlitMem:
- lea TXT_AllocBlitMem(pc),a0
- bsr WriteFirst
- bsr.s Alloc
- lea TXT_MemBlit(pc),a0
- bra WriteText
-
- PRINT_AllocVideoMem:
- lea TXT_AllocVideoMem(pc),a0
- bsr WriteFirst
- bsr.s Alloc
- lea TXT_MemVideo(pc),a0
- bra WriteText
-
- PRINT_AllocSoundMem:
- lea TXT_AllocSoundMem(pc),a0
- bsr WriteFirst
- bsr.s Alloc
- lea TXT_MemSound(pc),a0
- bra WriteText
-
- PRINT_AllocMemBlock:
- lea TXT_AllocMemBlock(pc),a0
- bsr WriteFirst
- bsr.s Alloc
- lea TXT_MemData(pc),a0
- bra WriteText
-
- PRINT_FreeMemBlock:
- lea TXT_FreeMemBlock(pc),a0
- bsr WriteFirst
- lea TXT_Address(pc),a0 ;a0 = "Address: $"
- bsr WriteText ;>> = Write it out.
- bsr WriteHex ;>> = Write out address in d0.
- lea TXT_Size(pc),a0 ;a0 = "Size : "
- bsr WriteText ;>> = Write it out.
- move.l d0,a0 ;d0 = Address of memory block.
- move.l -12(a0),d0 ;d0 = Size of block.
- bra WriteDec ;>> = Write it out.
-
- Alloc: lea TXT_Size(pc),a0 ;a0 = "Size: "
- bsr WriteText ;>> = Write text.
- bra WriteDec ;>> = Write out size in d0.
-
- ;-----------------------------------------------------------------------------------;
- ; STRUCTURE MANIPULATION
- ;-----------------------------------------------------------------------------------;
-
- PRINT_GetBob:
- lea TXT_GetBob(pc),a0
- bra WriteFirst
-
- PRINT_GetPicture:
- lea TXT_GetPicture(pc),a0
- bra WriteFirst
-
- PRINT_GetScreen:
- lea TXT_GetScreen(pc),a0
- bra WriteFirst
-
- PRINT_GetMBob:
- lea TXT_GetMBob(pc),a0
- bra WriteFirst
-
- PRINT_GetSound:
- lea TXT_GetSound(pc),a0
- bra WriteFirst
-
- PRINT_GetStructure:
- lea TXT_GetStructure(pc),a0
- bsr WriteFirst
- lea TXT_ID(pc),a0 ;a0 = "ID: "
- bsr.s WriteText ;>> = Write.
-
- swap d0 ;d0 = "IDTG" or "XXID"
- cmp.w #"TG",d0 ;d0 = Is it a specified taglist?
- bne.s .chkBob ;>> = No, must be of type XXID.
- swap d0 ;d0 = "TGID"
-
- .chkBob cmp.w #ID_BOB,d0
- bne.s .chkMBob
- lea .Bob(pc),a0
- bra WriteText
-
- .chkMBob
- cmp.w #ID_MBOB,d0
- bne.s .chkGameScreen
- lea .MBob(pc),a0
- bra WriteText
-
- .chkGameScreen
- cmp.w #ID_GAMESCREEN,d0
- bne.s .chkPicture
- lea .GameScreen(pc),a0
- bra WriteText
-
- .chkPicture
- cmp.w #ID_PICTURE,d0
- bne.s .chkCardSet
- lea .Picture(pc),a0
- bra WriteText
-
- .chkCardSet
- cmp.w #ID_CARDSET,d0
- bne.s .chkAnimation
- lea .CardSet(pc),a0
- bra WriteText
-
- .chkAnimation
- cmp.w #ID_ANIM,d0
- bne.s .chkMovie
- lea .Animation(pc),a0
- bra WriteText
-
- .chkMovie
- cmp.w #ID_MOVIE,d0
- bne.s .chkSound
- lea .Movie(pc),a0
- bra WriteText
-
- .chkSound
- cmp.w #ID_SOUND,d0
- bne.s .chkInvalid
- lea .Sound(pc),a0
- bra WriteText
-
- .chkInvalid
- lea .Invalid(pc),a0
- bra WriteText
-
- .Bob Text "Bob",0
- .MBob Text "MBob",0
- .GameScreen Text "GameScreen",0
- .Picture Text "Picture",0
- .CardSet Text "CardSet",0
- .Animation Text "Animation",0
- .Movie Text "Movie",0
- .Sound Text "Sound",0
- .Invalid Text "Error - Invalid!",0
-
-
- PRINT_FreeStructure:
- lea TXT_FreeStructure(pc),a0
- bsr WriteFirst
- move.l a0,a1 ;a1 = Save structure.
- lea TXT_Structure(pc),a0 ;a0 = "Structure: $"
- bsr WriteText
- move.l a1,d0 ;d0 = Structure address.
- bra WriteHex
-
- ;-----------------------------------------------------------------------------------;
- ; FILE I/O
- ;-----------------------------------------------------------------------------------;
-
- PRINT_SmartSave:
- lea TXT_SmartSave(pc),a0
- bsr WriteFirst
- move.l d0,d1 ;d1 = Save length.
- bsr WriteText ;>> = Write out filename in a0.
- lea TXT_CSource(pc),a0 ;a0 = ", Source: $"
- bsr WriteText ;>> = Write text.
- move.l a1,d0 ;d0 = Address of source.
- bsr WriteHex ;>> = Write as hex.
- lea TXT_SourceLen(pc),a0 ;a0 = "Length: "
- bsr WriteText ;>> = Write text.
- move.l d1,d0 ;d0 = Length.
- bra WriteDec ;>> = Write as decimals.
-
- PRINT_OpenFile:
- move.l a0,a1
- lea TXT_OpenFile(pc),a0
- bsr WriteFirst
- move.l a1,a0
- bsr.s WriteText ;>> = Write out filename in a0.
- lea TXT_Flags(pc),a0 ;a0 = ", Flags: $"
- bsr.s WriteText
- bra WriteHex ;>> = Write out hex flags in d0.
-
- PRINT_CloseFile:
- lea TXT_CloseFile(pc),a0
- bsr WriteFirst
- move.l a0,a1 ;a1 = Save file structure.
- lea TXT_FileBase(pc),a0 ;a0 = "FileBase: $"
- bsr.s WriteText
- move.l a1,d0 ;d0 = Structure address.
- bra WriteHex
-
- PRINT_SmartLoad:
- move.l a0,a3
- lea TXT_SmartLoad(pc),a0
- bsr WriteFirst
- move.l a3,a0
- bsr WriteText ;>> = Write out filename.
- lea TXT_CDest(pc),a0 ;a0 = "Dest: $"
- bsr WriteText
- cmp.l #$00,a1 ;a1 = Destination given?
- beq.s .alloc ;>> = No, allocate destination.
- move.l a1,d0 ;d0 = Destination address.
- bra WriteHex
- .alloc lea TXT_Allocated(pc),a0 ;a0 = "Allocated"
- bra WriteText
-
- PRINT_QuickLoad:
- move.l a0,a3
- lea TXT_QuickLoad(pc),a0
- bsr WriteFirst
- move.l a3,a0
- bsr WriteText ;>> = Write out filename.
- lea TXT_CDest(pc),a0 ;a0 = "Dest: $"
- bsr WriteText
- cmp.l #$00,a1 ;a1 = Destination given?
- beq.s .alloc ;>> = No, allocate destination.
- move.l a1,d0 ;d0 = Destination address.
- bra WriteHex
- .alloc lea TXT_Allocated(pc),a0 ;a0 = "Allocated"
- bra WriteText
-
- ;===================================================================================;
- ; NEW LINE
- ;===================================================================================;
-
- NewLine:
- MOVEM.L D0-D7/A0-A6,-(SP) ;SP = Save used registers.
- move.l _DOSBase,a6 ;a6 = DOSBase.
- move.l _conhandle,d1 ;d1 = Window to output Text.
- move.l #TXT_NewLine,d2 ;d2 = Start of string.
- moveq #1,d3 ;d3 = One character.
- CALL Write ;>> = Write out the string.
- MOVEM.L (SP)+,D0-D7/A0-A6 ;SP = Return used registers.
- rts
-
- ;===================================================================================;
- ; FUNCTION STEPPER
- ;===================================================================================;
-
- Stepper:
- MOVEM.L D0-D7/A0-A6,-(SP) ;SP = Save used registers.
- move.l _GMSBase,a6 ;a6 = GMSBase
- CALL FindGMSTask ;>> = Find this task.
- tst.l d0 ;d0 = Check if node exists.
- beq.s .done ;>> = No, exit...
- move.l d0,a0 ;a0 = GMS task node.
-
- move.w GT_DebugStep(a0),d4 ;d4 = Amount of spaces to step.
- beq.s .done ;>> = No spaces, exit.
- blt.s .error ;>> = Error!
- .loop move.l _DOSBase,a6 ;a6 = DOSBase.
- move.l _conhandle,d1 ;d1 = Window to output Text.
- move.l #TXT_Space,d2 ;d2 = Start of string.
- moveq #1,d3 ;d3 = One character.
- CALL Write ;>> = Write out the string.
- subq.w #1,d4 ;d4 = (AmtSpaces)-1
- bgt.s .loop ;>> = Keep looping if more left.
- .done MOVEM.L (SP)+,D0-D7/A0-A6 ;SP = Return used registers.
- rts
-
- .error move.l _DOSBase,a6 ;a6 = DOSBase.
- move.l _conhandle,d1 ;d1 = Window to output Text.
- move.l #XXX,d2 ;d2 = Start of string.
- moveq #1,d3 ;d3 = One character.
- CALL Write ;>> = Write out the string.
- MOVEM.L (SP)+,D0-D7/A0-A6 ;SP = Return used registers.
- rts
-
- XXX dc.b "X",0
-
- ;===================================================================================;
- ; OUTPUT Text TO OUR WINDOW
- ;===================================================================================;
- ;Internal: Writes a string of Text to our window.
- ;Requires: a0 = Text string.
- ;Returns: Nothing.
-
- MAXLETTERS = 23
-
- WriteBold:
- MOVEM.L A0-A6/D0-D7,-(SP) ;SP = Save used registers.
- move.l a0,a3 ;a3 = Save pointer to text to write.
- move.l _DOSBase,a6 ;a6 = DOSBase.
- move.l _conhandle,d1 ;d1 = Window to output Text.
- move.l #TXT_Bold,d2 ;d2 = Start of string.
- moveq #4,d3 ;d3 = (EndString)-StartString [Length]
- CALL Write ;>> = Write out the string.
- bra.s WSkip
-
- WriteWhite:
- MOVEM.L A0-A6/D0-D7,-(SP) ;SP = Save used registers.
- move.l a0,a3 ;a3 = Save pointer to text to write.
- move.l _DOSBase,a6 ;a6 = DOSBase.
- move.l _conhandle,d1 ;d1 = Window to output Text.
- move.l #TXT_White,d2 ;d2 = Start of string.
- moveq #5,d3 ;d3 = (EndString)-StartString [Length]
- CALL Write ;>> = Write out the string.
- bra.s WSkip ;>> = Skip into routine.
-
- WriteFirst:
- MOVEM.L A0-A6/D0-D7,-(SP) ;SP = Save used registers.
- move.l a0,a3 ;a3 = Save pointer to text to write.
- move.l _DOSBase,a6 ;a6 = DOSBase.
- move.l _conhandle,d1 ;d1 = Window to output Text.
- move.l #TXT_Flat,d2 ;d2 = Start of string.
- moveq #4,d3 ;d3 = (EndString)-StartString [Length]
- CALL Write ;>> = Write out the string.
-
- WSkip: move.l _GMSBase,a6 ;a6 = GMSBase.
- move.l _conhandle,d1 ;d1 = Window to output Text.
- move.l a3,d2 ;d2 = Start of string.
- moveq #-1,d3 ;d3 = -1 [length]
- .count addq.l #1,d3 ;d3 = ++1
- tst.b (a3)+ ;a3 = End of string?
- bne.s .count ;>> = Keep looping.
-
- moveq #MAXLETTERS,d5 ;d5 = MaxLetters
- sub.w d3,d5 ;d5 = (MaxLetters)-TextLength
-
- move.l _GMSBase,a6
- CALL FindGMSTask
- tst.l d0
- beq.s .under
- move.l d0,a0
- sub.w GT_DebugStep(a0),d5 ;d5 = (MaxLetters-TextLength)-Stepped
- bge.s .under ;>> = Under the maximum amount.
- add.w d5,d3 ;d3 = (Length)-Overflow
- .under move.l _DOSBase,a6 ;a6 = DOSBase.
- CALL Write ;>> = Write out the string.
-
- .spaces subq.w #1,d5
- blt.s .done
- move.l _conhandle,d1 ;d1 = Output.
- move.l #TXT_Space,d2 ;d2 = Start of text.
- moveq #1,d3 ;d3 = 1 character.
- CALL Write ;>> = Write out the string.
- bra.s .spaces ;>> = Loop until finished.
- .done MOVEM.L (SP)+,A0-A6/D0-D7 ;SP = Return used registers.
- rts
-
- ;-----------------------------------------------------------------------------------;
-
- WriteText:
- MOVEM.L A0-A6/D0-D7,-(SP) ;SP = Save used registers.
- move.l _DOSBase,a6 ;a6 = DOSBase.
- move.l _conhandle,d1 ;d1 = Window to output Text.
- move.l #TXT_Flat,d2 ;d2 = Start of string.
- moveq #4,d3 ;d3 = (EndString)-StartString [Length]
- CALL Write ;>> = Write out the string.
- MOVEM.L (SP)+,A0-A6/D0-D7 ;SP = Return used registers.
- bsr.s WText
- rts
-
- WText: MOVEM.L A0-A6/D0-D7,-(SP) ;SP = Save used registers.
- move.l _DOSBase,a6 ;a6 = DOSBase.
- move.l _conhandle,d1 ;d1 = Window to output Text.
- move.l a0,d2 ;d2 = Start of string.
- .count tst.b (a0)+ ;a0 = End of string?
- bne.s .count ;>> = Keep looping.
- subq.w #1,a0 ;a0 = --1 [End of string]
- move.l a0,d3 ;d3 = End of string.
- sub.l d2,d3 ;d3 = (EndString)-StartString [Length]
- CALL Write ;>> = Write out the string.
- MOVEM.L (SP)+,A0-A6/D0-D7 ;SP = Return used registers.
- rts
-
- ;===================================================================================;
- ; OUTPUT HEXADECIMAL Text TO OUR WINDOW
- ;===================================================================================;
- ;Internal: Outputs a longword value as hexidecimal Text.
- ;Requires: d0 = Value
- ; d7 = AmtBytes (1-8)
- ;Returns: Nothing.
-
- WriteHex:
- MOVEM.L A0-A6/D0-D7,-(SP) ;SP = Save used registers.
- lea .hex(pc),a0 ;a0 = Hex table.
- lea String(pc),a1 ;a1 = Text buffer.
- moveq #$00,d2
- tst.l d0
- beq.s .wzero
- moveq #8-1,d7 ;d7 = (AmtBytes)-1
- .loop2 rol.l #4,d0 ;d0 = <<4 [rotate, last nibble first]
- move.l d0,d1 ;d1 = Current value.
- and.l #$0000000F,d1 ;d1 = (Value)&$F [nibble]
- bne.s .write
- tst.w d2
- beq.s .skip
- .write move.b (a0,d1.w),(a1)+ ;a1 = Write out the hex value.
- moveq #$01,d2
- .skip dbra d7,.loop2 ;d7 = --1 and loop.
- move.w #$2000,(a1) ;a1 = Clear the final byte.
- lea String(pc),a0 ;a0 = Text buffer.
- bsr WriteText ;>> = Write it out.
- MOVEM.L (SP)+,A0-A6/D0-D7 ;SP = Return used registers.
- rts
-
- .wzero lea .zero(pc),a0 ;a0 = "0"
- bsr WriteText ;>> = Write it out.
- MOVEM.L (SP)+,A0-A6/D0-D7 ;SP = Return used registers.
- rts
-
- .zero Text "0 ",0
- .hex Text "0123456789ABCDEF"
- String: Text " ",0
-
- ;===================================================================================;
- ; WRITE DECIMAL NUMBER
- ;===================================================================================;
- ;Internal: Outputs a longword value as decimal Text.
- ;Requires: d0 = Value
- ; d7 = AmtBytes (1-8) or -1/0.
- ;Returns: Nothing.
-
- WriteDec:
- MOVEM.L A0-A6/D0-D7,-(SP) ;SP = Save used registers.
- moveq #-1,d7
- move.l _GMSBase,a6
- move.w d7,d1
- lea String(pc),a0
- CALL WriteDec
- move.l d0,a1
- move.w #$2000,(a1)
- bsr WriteText
- MOVEM.L (SP)+,A0-A6/D0-D7 ;SP = Return used registers.
- rts
-
- ;===================================================================================;
- ; Text FOR PRINT ROUTINES
- ;===================================================================================;
-
- _GFXBase: dc.l 0
-
- TXT_RasterAddr: WText " Rasterlist: $"
- TXT_CSource: WText ", Source: $"
- TXT_CDest: WText ", Dest: $"
- TXT_SourceLen: WText "Length: "
- TXT_RestoreAddr: WText "Restorelist: $"
- TXT_AmtBuffers: WText "AmtBuffers: "
- TXT_AmtEntries: WText ", AmtEntries: "
- TXT_FileName: WText "FileName: "
- TXT_FileBase: WText "FileBase: $"
- TXT_Flags: WText ", Flags: $"
- TXT_Name: WText "Name: "
- TXT_Unknown: WText "Unknown. "
- TXT_Unspecified: WText "Unspecified. "
- TXT_Source: WText "Source: $"
- TXT_Allocated: WText "Allocated. "
- TXT_Address: WText "Address: $"
- TXT_PictureAddr: WText "Picture: $"
- TXT_ScreenAddr: WText "GameScreen: $"
- TXT_BobAddr: WText "Bob: $"
- TXT_MBobAddr: WText "MBob: $"
- TXT_SoundAddr: WText "Sound: $"
- TXT_Size: WText "Size: "
- TXT_MemData: WText "(Data)"
- TXT_MemVideo: WText "(Video)"
- TXT_MemBlit: WText "(Blit)"
- TXT_MemSound: WText "(Sound)"
- TXT_ObjectBase: WText "ObjectBase: $"
- TXT_ObjectList: WText "ObjectList: $"
- TXT_Structure: WText "Structure: $"
- TXT_ID: WText "ID: "
- TXT_Task: WText "Task: $"
- TXT_Space: WText " "
- TXT_NewLine: dc.b 10,0
-
- TXT_Flat: WText ""
- TXT_Bold: WText ""
- TXT_White: WText ""
-
- GPINames:
- dc.l .SCR_Name
- dc.l .BLT_Name
- dc.l .SND_Name
- dc.l .NET_Name
- dc.l .VEC_Name
- dc.l .FBL_Name ;Empty
- dc.l .ANM_Name
- dc.l .RKO_Name
- dc.l .TXT_Name
- dc.l .OBJ_Name
-
- .SCR_Name WText "Screens.GPI"
- .BLT_Name WText "Blitter.GPI"
- .SND_Name WText "Sound.GPI"
- .NET_Name WText "Network.GPI"
- .VEC_Name WText "Vectors.GPI"
- .FBL_Name WText "Fireball.GPI"
- .ANM_Name WText "Anim.GPI"
- .RKO_Name WText "Reko.GPI"
- .TXT_Name WText "Text.GPI"
- .OBJ_Name WText "Objects.GPI"
-
- ;-----------------------------------------------------------------------------------;
- ; ERROR LIST
- ;-----------------------------------------------------------------------------------;
-
- ErrorList:
- dc.l ERROR_OK
- dc.l ERROR_NoMem
- dc.l ERROR_NoPtr
- dc.l ERROR_InUse
- dc.l ERROR_Struct
- dc.l ERROR_Failed
- dc.l ERROR_File
- dc.l ERROR_Data
- dc.l ERROR_Search
- dc.l ERROR_ScrType
- dc.l ERROR_GPI
- dc.l ERROR_RCommand
- dc.l ERROR_RList
- dc.l ERROR_NoRaster
- dc.l ERROR_DiskFull
- dc.l ERROR_FileMiss
- dc.l ERROR_WrongVer
- dc.l ERROR_Monitor
- dc.l ERROR_Unpack
-
- ERROR_OK: WText "OK: No problem!"
- ERROR_NoMem: WText "NOMEM: Not enough memory available."
- ERROR_NoPtr: WText "NOPTR: A required address pointer is not present."
- ERROR_InUse: WText "INUSE: Previous allocations have not been freed."
- ERROR_Struct: WText "STRUCT: Structure version not supported or found."
- ERROR_Failed: WText "FAILED: General/Miscellaneous failure."
- ERROR_File: WText "FILE: File error, eg file not found, disk full etc."
- ERROR_Data: WText "DATA: There is an error in the given data."
- ERROR_Search: WText "SEARCH: An internal search was performed and it failed."
- ERROR_ScrType: WText "SCRTYPE: Screen Type not recognised."
- ERROR_GPI: WText "GPI: Trouble initialising a GPI."
- ERROR_RCommand: WText "RASTCOMMAND: Invalid raster command detected."
- ERROR_RList: WText "RASTERLIST: Complete rasterlist failure."
- ERROR_NoRaster: WText "NORASTER: Rasterlist missing from GS_Rasterlist."
- ERROR_DiskFull: WText "DISKFULL: Disk full error."
- ERROR_FileMiss: WText "FILEMISSING: File not found."
- ERROR_WrongVer: WText "WRONGVER: Wrong version or version not supported."
- ERROR_Monitor: WText "MONITOR: Monitor driver not found or not supported."
- ERROR_Unpack: WText "UNPACK: Problem with unpacking of data."
-
- ;-----------------------------------------------------------------------------------;
- ; DEBUG LIST
- ;-----------------------------------------------------------------------------------;
-
- STRUCTURE DataListEntry,0
- WORD DL_State ;On = 1 / Off = 0.
- APTR DL_Print ;Pointer to the function printer.
- LABEL DL_SIZEOF
-
- MACRO Entry
- dc.w 1 ;On = 1 / Off = 0.
- dc.l PRINT_\1 ;Print function called by WriteBuffer.
- ENDM
-
- _DebugList:
- Entry Error
- Entry Formatted
- Entry Message
- Entry AllocMemBlock
- Entry FreeMemBlock
- Entry AddScreen
- Entry DeleteScreen
- Entry InitGPI
- Entry RemoveGPI
- Entry AddInputHandler
- Entry RemInputHandler
- Entry AddInterrupt
- Entry RemInterrupt
- Entry SmartLoad
- Entry QuickLoad
- Entry SmartUnpack
- Entry SmartSave
- Entry SetUserPrefs
- Entry LoadPic
- Entry FreePic
- Entry InitRasterlist
- Entry AllocBlitter
- Entry FreeBlitter
- Entry InitBob
- Entry FreeBob
- Entry InitRestore
- Entry FreeRestore
- Entry AllocBlitMem
- Entry AllocVideoMem
- Entry AllocSoundMem
- Entry AllocAudio
- Entry FreeAudio
- Entry ShowScreen
- Entry HideScreen
- Entry InitMap
- Entry FreeMap
- Entry InitSound
- Entry FreeSound
- Entry HideRasterlist
- Entry ShowRasterlist
- Entry FindGMSTask
- Entry MoveToFront
- Entry Switch
- Entry UnpackPic
- Entry GetPicInfo
- Entry GMSOpened
- Entry GMSClosed
- Entry ResetRestore
- Entry RemoveRasterlist
- Entry InitCards
- Entry FreeCards
- Entry GetCardInfo
- Entry GetBob
- Entry GetPicture
- Entry GetScreen
- Entry GetStructure
- Entry GetMBob
- Entry GetSound
- Entry SelfDestruct
- Entry Armageddon
- Entry FingerOfDeath
- Entry InitDestruct
- Entry BlankOn
- Entry BlankOff
- Entry LoadObjectFile
- Entry FreeObjectFile
- Entry GetObjectList
- Entry GetObject
- Entry OpenFile
- Entry CloseFile
- Entry FreeStructure
- Entry MoveToBack
- Entry TakeDisplay
- Entry ReturnDisplay
- Entry Awaken
-
- ;---------------------------------------------------------------------------;
-
- TXT_GMSOpened: WText "GMS OPENED "
- TXT_GMSClosed: Text "GMS CLOSED ",10,0
-
- TXT_ErrorCode: WText "ErrorCode:"
- TXT_Error: WText "Error:"
- TXT_Formatted: WText "Message:"
- TXT_Message: WText "Message:"
-
- TXT_AllocMemBlock: WText "AllocMemBlock()"
- TXT_FreeMemBlock: WText "FreeMemBlock()"
- TXT_AddScreen: WText "AddScreen()"
- TXT_DeleteScreen: WText "DeleteScreen()"
- TXT_InitGPI: WText "InitGPI()"
- TXT_RemoveGPI: WText "RemoveGPI()"
- TXT_AddInputHandler: WText "AddInputHandler()"
- TXT_RemInputHandler: WText "RemInputHandler()"
- TXT_AddInterrupt: WText "AddInterrupt()"
- TXT_RemInterrupt: WText "RemInterrupt()"
- TXT_SmartLoad: WText "SmartLoad()"
- TXT_QuickLoad: WText "QuickLoad()"
- TXT_SmartUnpack: WText "SmartUnpack()"
- TXT_SmartSave: WText "SmartSave()"
- TXT_SetUserPrefs: WText "SetUserPrefs()"
- TXT_LoadPic: WText "LoadPic()"
- TXT_FreePic: WText "FreePic()"
- TXT_InitRasterlist: WText "InitRasterlist()"
- TXT_AllocBlitter: WText "AllocBlitter()"
- TXT_FreeBlitter: WText "FreeBlitter()"
- TXT_InitBob: WText "InitBob()"
- TXT_FreeBob: WText "FreeBob()"
- TXT_InitRestore: WText "InitRestore()"
- TXT_FreeRestore: WText "FreeRestore()"
- TXT_AllocBlitMem: WText "AllocBlitMem()"
- TXT_AllocVideoMem: WText "AllocVideoMem()"
- TXT_AllocSoundMem: WText "AllocSoundMem()"
- TXT_AllocAudio: WText "AllocAudio()"
- TXT_FreeAudio: WText "FreeAudio()"
- TXT_ShowScreen: WText "ShowScreen()"
- TXT_HideScreen: WText "HideScreen()"
- TXT_InitMap: WText "InitMap()"
- TXT_FreeMap: WText "FreeMap()"
- TXT_InitSound: WText "InitSound()"
- TXT_FreeSound: WText "FreeSound()"
- TXT_HideRasterlist: WText "HideRasterlist()"
- TXT_ShowRasterlist: WText "ShowRasterlist()"
- TXT_FindGMSTask: WText "FindGMSTask()"
- TXT_MoveToFront: WText "MoveToFront()"
- TXT_Switch: WText "Switch()"
- TXT_UnpackPic: WText "UnpackPic()"
- TXT_GetPicInfo: WText "GetPicInfo()"
- TXT_ResetRestore: WText "ResetRestore()"
- TXT_RemoveRasterlist: WText "RemoveRasterlist()"
- TXT_InitCards: WText "InitCards()"
- TXT_FreeCards: WText "FreeCards()"
- TXT_GetCardInfo: WText "GetCardInfo()"
- TXT_GetBob: WText "GetBob()"
- TXT_GetPicture: WText "GetPicture()"
- TXT_GetScreen: WText "GetScreen()"
- TXT_GetStructure: WText "GetStructure()"
- TXT_GetMBob: WText "GetMBob()"
- TXT_GetSound: WText "GetSound()"
- TXT_SelfDestruct: WText "SelfDestruct()"
- TXT_Armageddon: WText "Armageddon()"
- TXT_FingerOfDeath: WText "FingerOfDeath()"
- TXT_InitDestruct: WText "InitDestruct()"
- TXT_BlankOn: WText "BlankOn()"
- TXT_BlankOff: WText "BlankOff()"
- TXT_LoadObjectFile: WText "LoadObjectFile()"
- TXT_FreeObjectFile: WText "FreeObjectFile()"
- TXT_GetObjectList: WText "GetObjectList()"
- TXT_GetObject: WText "GetObject()"
- TXT_OpenFile: WText "OpenFile()"
- TXT_CloseFile: WText "CloseFile()"
- TXT_FreeStructure: WText "FreeStructure()"
- TXT_MoveToBack: WText "MoveToBack()"
- TXT_TakeDisplay: WText "TakeDisplay()"
- TXT_ReturnDisplay: WText "ReturnDisplay()"
- TXT_Awaken: WText "Awaken()"
-
-